package com.k8sops.backend.mapper;

import com.k8sops.backend.entity.RoleUserRelation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * u89d2u8272u7528u6237u5173u7cfbMapperu63a5u53e3
 */
@Mapper
public interface RoleUserRelationMapper {

    /**
     * u521bu5efau89d2u8272u7528u6237u5173u7cfb
     * @param relation u89d2u8272u7528u6237u5173u7cfbu4fe1u606f
     * @return u5f71u54cdu884cu6570
     */
    int insert(RoleUserRelation relation);

    /**
     * u6279u91cfu521bu5efau89d2u8272u7528u6237u5173u7cfb
     * @param relations u89d2u8272u7528u6237u5173u7cfbu5217u8868
     * @return u5f71u54cdu884cu6570
     */
    int batchInsert(@Param("relations") List<RoleUserRelation> relations);

    /**
     * u6839u636eu89d2u8272IDu5220u9664u89d2u8272u7528u6237u5173u7cfb
     * @param roleId u89d2u8272ID
     * @return u5f71u54cdu884cu6570
     */
    int deleteByRoleId(@Param("roleId") Long roleId);

    /**
     * u6839u636eu7528u6237IDu5220u9664u89d2u8272u7528u6237u5173u7cfb
     * @param userId u7528u6237ID
     * @return u5f71u54cdu884cu6570
     */
    int deleteByUserId(@Param("userId") Long userId);

    /**
     * u6839u636eu89d2u8272IDu548cu7528u6237IDu5220u9664u89d2u8272u7528u6237u5173u7cfb
     * @param roleId u89d2u8272ID
     * @param userId u7528u6237ID
     * @return u5f71u54cdu884cu6570
     */
    int deleteByRoleIdAndUserId(@Param("roleId") Long roleId, @Param("userId") Long userId);

    /**
     * u6839u636eu89d2u8272IDu67e5u8be2u89d2u8272u7528u6237u5173u7cfb
     * @param roleId u89d2u8272ID
     * @return u89d2u8272u7528u6237u5173u7cfbu5217u8868
     */
    List<RoleUserRelation> selectByRoleId(@Param("roleId") Long roleId);

    /**
     * u6839u636eu7528u6237IDu67e5u8be2u89d2u8272u7528u6237u5173u7cfb
     * @param userId u7528u6237ID
     * @return u89d2u8272u7528u6237u5173u7cfbu5217u8868
     */
    List<RoleUserRelation> selectByUserId(@Param("userId") Long userId);
}
